<!DOCTYPE html>
<html lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>sim_caltab [HALCON算子参考手册]</title>
<style type="text/css">
      body {
    color: #000000;
    background-color: #ffffff;
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
}

.body_main {
    margin-left: 35px;
    margin-right: 35px;
}

@media screen and (min-width:992px) {

    .body_main {
        margin-left: 10%;
        margin-right: 10%;
    }

    table.toctable {
        width: 80%
    }
}

@media screen and (min-width:1400px) {

    .body_main {
        margin-left: 15%;
        margin-right: 15%;
    }

    table.toctable {
        width: 70%
    }
}

body>div ul ul {
    margin-left: inherit;
}

a:link {
    color: #0044cc;
}

a:link,
a:visited {
    text-decoration: none;
}

a:link:hover,
a:visited:hover {
    text-decoration: underline;
}

th {
    text-align: left;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    text-rendering: optimizeLegibility;
    color: #666666;
}

code {
    font-family: monospace,monospace;
}

h1 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

h2 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

hr {
    border: 0;
    border-top: solid 1px #f28d26;
}

.pre {
    display: block;
    padding-bottom: 1ex;
    font-family: monospace;
    white-space: pre;
}

pre {
    font-family: monospace, monospace;
    padding: 1ex;
    white-space: pre-wrap;
}

.toc {
    font-size: 80%;
    border-top: 1px dashed #f28d26;
    border-bottom: 1px dashed #f28d26;
    padding-top: 5px;
    padding-bottom: 5px;
}

.inv {
    margin: 0;
    border: 0;
    padding: 0;
}

.banner {
    color: #666666;
    padding-left: 1em;
}

.logo {
    background-color: white;
}

.keyboard {
    font-size: 80%;
    padding-left: 3px;
    padding-right: 3px;
    border-radius: 5px;
    border-width: 1px;
    border-style: solid;
    border-color: #f28d26;
    background-color: #f3f3f3;
}

.warning {
    margin-top: 2ex;
    margin-bottom: 1ex;
    padding: 10px;
    text-align: center;
    border: 1px solid;
    color: #bb0000;
    background-color: #fff7f7
}

.imprint {
    margin-top: 1ex;
    font-size: 80%;
    color: #666666;
}

.imprinthead {
    font-weight: bolder;
    color: #666666;
}

.indexlink {
    text-align: right;
    padding-bottom: 5px;
}

.postscript {
    margin-top: 2ex;
    font-size: 80%;
    color: #666666
}

.evenrow {
    background-color: #e7e7ef;
    vertical-align: top;
}

.oddrow {
    background-color: #f7f7ff;
    vertical-align: top;
}

.headrow {
    background-color: #97979f;
    color: #ffffff;
    vertical-align: top;
}

.logorow {
    vertical-align: top;
}

.error {
    color: red;
}

.var {
    font-style: italic
}

.halconoperator {
    font-family: monospace, monospace;
}

span.operator {
    font-family: monospace, monospace;
}

span.procedure {
    font-family: monospace, monospace;
}

span.operation {
    font-family: monospace, monospace;
}

span.feature {
    font-family: Arial, Helvetica, Homerton, sans-serif;
}

ul {
    padding-left: 1.2em;
}

li.dot {
    list-style-type: square;
    color: #f28d26;
}

.breadcrumb {
    font-size: 80%;
    color: white;
    background-color: #062d64;
    margin-bottom: 20px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 15px;
}

.webbar {
    font-size: 80%;
    background-color: #dddddd;
    margin-top: 0px;
    margin-left: -35px;
    margin-right: -35px;
    margin-bottom: 0px;
    padding-top: 5px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 5px;
}

.footer {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    border-top: 1px dashed #f28d26;
    font-size: 80%;
    color: #666666;
    padding-bottom: 8px;
}

.footer .socialmedia a {
    padding-left: 7px;
}

.socialmedia {
    padding-top: 10px;
}

.copyright {
    margin-top: 19px;
}

.breadcrumb a {
    color: #ffffff;
    border-bottom: 1px solid white;
}

.breadcrumb a:link:hover,
.breadcrumb a:visited:hover {
    text-decoration: none;
    border-bottom: none;
}

.heading {
    margin-top: 1ex;
    font-size: 110%;
    font-weight: bold;
    color: #666666;
}

.text {
    color: black;
}

.example {
    font-size: 80%;
    background-color: #f3f3f3;
    border: 1px dashed #666666;
    padding: 10px;
}

.displaymath {
    display: block;
    text-align: center;
    margin-top: 1ex;
    margin-bottom: 1ex;
}

.title {
    float: left;
    padding-top: 3px;
    padding-bottom: 3px;
}

.signnote {
    font-family: Arial, Helvetica, Homerton, sans-serif;
    font-size: 80%;
    color: #666666;
    font-weight: lighter;
    font-style: italic
}

.par {
    margin-bottom: 1.5em;
}

.parhead {
    text-align: right;
}

.parname {
    float: left;
}

.pardesc {
    font-size: 85%;
    margin-top: 0.5em;
    margin-bottom: 0.5em;
    margin-left: 2em;
}

.parcat {
    color: #666;
    font-weight: bold;
}

*[data-if=cpp],
*[data-if=c],
*[data-if=dotnet],
*[data-if=com],
*[data-if=python] {
    display: none;
}

.tabbar {
    text-align: right;
    border-bottom: 1px solid #f28d26;
    margin-bottom: 0.5em;
}

ul.tabs {
    padding-top: 3px;
    padding-bottom: 3px;
    margin-top: 10px;
    margin-bottom: 0;
    font-size: 80%
}

ul.tabs li {
    padding-top: 3px;
    padding-bottom: 3px;
    display: inline;
    overflow: hidden;
    list-style-type: none;
    margin: 0;
    margin-left: 8px;
    border-top: 1px solid #666;
    border-left: 1px solid #666;
    border-right: 1px solid #666;
}

ul.tabs li.active {
    border-left: 1px solid #f28d26;
    border-right: 1px solid #f28d26;
    border-top: 1px solid #f28d26;
    border-bottom: 1px solid #fff;
}

ul.tabs li.inactive {
    background-color: #eee;
}

ul.tabs li a {
    padding-left: 5px;
    padding-right: 5px;
    color: #666;
}

ul.tabs li a:link:hover {
    text-decoration: none;
}

ul.tabs li.inactive a {
    color: #666;
}

ul.tabs li.active a {
    color: black;
}

dl.generic dd {
    margin-bottom: 1em;
}

.pari {
    color: olive;
}

.paro {
    color: maroon;
}

.comment {
    font-size: 80%;
    color: green;
    white-space: nowrap;
}

table.grid {
    border-collapse: collapse;
}

table.grid td {
    padding: 5px;
    border: 1px solid;
}

table.layout {
    border: 0px;
}

table.layout td {
    padding: 5px;
}

table.table {
    border-collapse: collapse;
}

table.table td {
    padding: 5px;
    border-left: 0px;
    border-right: 0px;
}

table.table tr:last-child {
    border-bottom: 1px solid;
}

table.table th {
    padding: 5px;
    border-top: 1px solid;
    border-bottom: 1px solid;
    border-left: 0px;
    border-right: 0px;
}

.details_summary {
    cursor: pointer;
}

table.toctable {
    width: 100%;
}

table.toctable col:first-child {
    width: 20%;
}

table.toctable col:nth-last-child(2) {
    width: 8%;
}

table.altcolored tr:nth-child(even) {
    background-color: #f3f3f3;
}

    </style>
<!--OP_REF_STYLE_END-->
<script>
    <!--
var active_lang='hdevelop';function switchVisibility(obj,active_lang,new_lang)
{var display_style='inline';
for(var i=0;i<obj.length;i++)
{if(obj.item(i).getAttribute('data-if')==new_lang)
{obj.item(i).style.display=display_style;}
if(obj.item(i).getAttribute('data-if')==active_lang)
{obj.item(i).style.display='none';}}
return;}
function toggleLanguage(new_lang,initial)
{if(active_lang!=new_lang)
{var lis=document.getElementsByTagName('li');for(var i=0;i<lis.length;i++)
{if(lis.item(i).id=='syn-'+new_lang)
{lis.item(i).className='active';}
else
{lis.item(i).className='inactive';}}
var divs=document.getElementsByTagName('div');var spans=document.getElementsByTagName('span');switchVisibility(divs,active_lang,new_lang);switchVisibility(spans,active_lang,new_lang);if(!initial)
{setCookie("halcon_reference_language",new_lang,null,null);}
active_lang=new_lang;}
return;}
function setCookie(name,value,domain,exp_offset,path,secure)
{localStorage.setItem(name,value);}
function getCookie(name)
{return localStorage.getItem(name);}
function initialize()
{var qs=location.href.split('?')[1];var qs_lang_raw=location.href.split('interface=')[1];var qs_lang;if(qs_lang_raw)
{qs_lang=qs_lang_raw.split('#')[0];}
var cookie_lang=getCookie("halcon_reference_language");var new_lang;if((qs_lang=="hdevelop")||(qs_lang=="dotnet")||(qs_lang=="python")||(qs_lang=="cpp")||(qs_lang=="c"))
{new_lang=qs_lang;setCookie("halcon_reference_language",new_lang,null,null);}
else if((cookie_lang=="hdevelop")||(cookie_lang=="dotnet")||(cookie_lang=="python")||(cookie_lang=="cpp")||(cookie_lang=="c"))
{new_lang=cookie_lang;}
else
{new_lang="hdevelop";}
toggleLanguage(new_lang,1);return;}
-->

  </script>
</head>
<body onload="initialize();">
<div class="breadcrumb">
<br class="inv"><a href="index.html">目录</a> / <a href="toc_calibration.html">Calibration</a> / <a href="toc_calibration_calibrationobject.html">Calibration Object</a><br class="inv">
</div>
<div class="body_main">
<div class="tabbar"><ul class="tabs">
<li id="syn-hdevelop" class="active"><a href="javascript:void(0);" onclick="toggleLanguage('hdevelop')" onfocus="blur()">HDevelop</a></li>
<li id="syn-dotnet" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('dotnet')" onfocus="blur()">.NET</a></li>
<li id="syn-python" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('python')" onfocus="blur()">Python</a></li>
<li id="syn-cpp" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('cpp')" onfocus="blur()">C++</a></li>
<li id="syn-c" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('c')" onfocus="blur()">C</a></li>
</ul></div>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<!--OP_REF_HEADER_END-->
<h1 id="sec_name">
<span data-if="hdevelop" style="display:inline;">sim_caltab</span><span data-if="c" style="display:none;">T_sim_caltab</span><span data-if="cpp" style="display:none;">SimCaltab</span><span data-if="dotnet" style="display:none;">SimCaltab</span><span data-if="python" style="display:none;">sim_caltab</span> (算子名称)</h1>
<h2>名称</h2>
<p><code><span data-if="hdevelop" style="display:inline;">sim_caltab</span><span data-if="c" style="display:none;">T_sim_caltab</span><span data-if="cpp" style="display:none;">SimCaltab</span><span data-if="dotnet" style="display:none;">SimCaltab</span><span data-if="python" style="display:none;">sim_caltab</span></code> — Simulate an image with calibration plate.</p>
<h2 id="sec_synopsis">参数签名</h2>
<div data-if="hdevelop" style="display:inline;">
<p>
<code><b>sim_caltab</b>( : <a href="#SimImage"><i>SimImage</i></a> : <a href="#CalPlateDescr"><i>CalPlateDescr</i></a>, <a href="#CameraParam"><i>CameraParam</i></a>, <a href="#CalPlatePose"><i>CalPlatePose</i></a>, <a href="#GrayBackground"><i>GrayBackground</i></a>, <a href="#GrayPlate"><i>GrayPlate</i></a>, <a href="#GrayMarks"><i>GrayMarks</i></a>, <a href="#ScaleFac"><i>ScaleFac</i></a> : )</code></p>
</div>
<div data-if="c" style="display:none;">
<p>
<code>Herror <b>T_sim_caltab</b>(Hobject* <a href="#SimImage"><i>SimImage</i></a>, const Htuple <a href="#CalPlateDescr"><i>CalPlateDescr</i></a>, const Htuple <a href="#CameraParam"><i>CameraParam</i></a>, const Htuple <a href="#CalPlatePose"><i>CalPlatePose</i></a>, const Htuple <a href="#GrayBackground"><i>GrayBackground</i></a>, const Htuple <a href="#GrayPlate"><i>GrayPlate</i></a>, const Htuple <a href="#GrayMarks"><i>GrayMarks</i></a>, const Htuple <a href="#ScaleFac"><i>ScaleFac</i></a>)</code></p>
</div>
<div data-if="cpp" style="display:none;">
<p>
<code>void <b>SimCaltab</b>(HObject* <a href="#SimImage"><i>SimImage</i></a>, const HTuple&amp; <a href="#CalPlateDescr"><i>CalPlateDescr</i></a>, const HTuple&amp; <a href="#CameraParam"><i>CameraParam</i></a>, const HTuple&amp; <a href="#CalPlatePose"><i>CalPlatePose</i></a>, const HTuple&amp; <a href="#GrayBackground"><i>GrayBackground</i></a>, const HTuple&amp; <a href="#GrayPlate"><i>GrayPlate</i></a>, const HTuple&amp; <a href="#GrayMarks"><i>GrayMarks</i></a>, const HTuple&amp; <a href="#ScaleFac"><i>ScaleFac</i></a>)</code></p>
<p>
<code>void <a href="HImage.html">HImage</a>::<b>SimCaltab</b>(const HString&amp; <a href="#CalPlateDescr"><i>CalPlateDescr</i></a>, const HCamPar&amp; <a href="#CameraParam"><i>CameraParam</i></a>, const HPose&amp; <a href="#CalPlatePose"><i>CalPlatePose</i></a>, Hlong <a href="#GrayBackground"><i>GrayBackground</i></a>, Hlong <a href="#GrayPlate"><i>GrayPlate</i></a>, Hlong <a href="#GrayMarks"><i>GrayMarks</i></a>, double <a href="#ScaleFac"><i>ScaleFac</i></a>)</code></p>
<p>
<code>void <a href="HImage.html">HImage</a>::<b>SimCaltab</b>(const char* <a href="#CalPlateDescr"><i>CalPlateDescr</i></a>, const HCamPar&amp; <a href="#CameraParam"><i>CameraParam</i></a>, const HPose&amp; <a href="#CalPlatePose"><i>CalPlatePose</i></a>, Hlong <a href="#GrayBackground"><i>GrayBackground</i></a>, Hlong <a href="#GrayPlate"><i>GrayPlate</i></a>, Hlong <a href="#GrayMarks"><i>GrayMarks</i></a>, double <a href="#ScaleFac"><i>ScaleFac</i></a>)</code></p>
<p>
<code>void <a href="HImage.html">HImage</a>::<b>SimCaltab</b>(const wchar_t* <a href="#CalPlateDescr"><i>CalPlateDescr</i></a>, const HCamPar&amp; <a href="#CameraParam"><i>CameraParam</i></a>, const HPose&amp; <a href="#CalPlatePose"><i>CalPlatePose</i></a>, Hlong <a href="#GrayBackground"><i>GrayBackground</i></a>, Hlong <a href="#GrayPlate"><i>GrayPlate</i></a>, Hlong <a href="#GrayMarks"><i>GrayMarks</i></a>, double <a href="#ScaleFac"><i>ScaleFac</i></a>)  <span class="signnote">
            (
            Windows only)
          </span></code></p>
<p>
<code><a href="HImage.html">HImage</a> <a href="HCamPar.html">HCamPar</a>::<b>SimCaltab</b>(const HString&amp; <a href="#CalPlateDescr"><i>CalPlateDescr</i></a>, const HPose&amp; <a href="#CalPlatePose"><i>CalPlatePose</i></a>, Hlong <a href="#GrayBackground"><i>GrayBackground</i></a>, Hlong <a href="#GrayPlate"><i>GrayPlate</i></a>, Hlong <a href="#GrayMarks"><i>GrayMarks</i></a>, double <a href="#ScaleFac"><i>ScaleFac</i></a>) const</code></p>
<p>
<code><a href="HImage.html">HImage</a> <a href="HCamPar.html">HCamPar</a>::<b>SimCaltab</b>(const char* <a href="#CalPlateDescr"><i>CalPlateDescr</i></a>, const HPose&amp; <a href="#CalPlatePose"><i>CalPlatePose</i></a>, Hlong <a href="#GrayBackground"><i>GrayBackground</i></a>, Hlong <a href="#GrayPlate"><i>GrayPlate</i></a>, Hlong <a href="#GrayMarks"><i>GrayMarks</i></a>, double <a href="#ScaleFac"><i>ScaleFac</i></a>) const</code></p>
<p>
<code><a href="HImage.html">HImage</a> <a href="HCamPar.html">HCamPar</a>::<b>SimCaltab</b>(const wchar_t* <a href="#CalPlateDescr"><i>CalPlateDescr</i></a>, const HPose&amp; <a href="#CalPlatePose"><i>CalPlatePose</i></a>, Hlong <a href="#GrayBackground"><i>GrayBackground</i></a>, Hlong <a href="#GrayPlate"><i>GrayPlate</i></a>, Hlong <a href="#GrayMarks"><i>GrayMarks</i></a>, double <a href="#ScaleFac"><i>ScaleFac</i></a>) const  <span class="signnote">
            (
            Windows only)
          </span></code></p>
<p>
<code><a href="HImage.html">HImage</a> <a href="HPose.html">HPose</a>::<b>SimCaltab</b>(const HString&amp; <a href="#CalPlateDescr"><i>CalPlateDescr</i></a>, const HCamPar&amp; <a href="#CameraParam"><i>CameraParam</i></a>, Hlong <a href="#GrayBackground"><i>GrayBackground</i></a>, Hlong <a href="#GrayPlate"><i>GrayPlate</i></a>, Hlong <a href="#GrayMarks"><i>GrayMarks</i></a>, double <a href="#ScaleFac"><i>ScaleFac</i></a>) const</code></p>
<p>
<code><a href="HImage.html">HImage</a> <a href="HPose.html">HPose</a>::<b>SimCaltab</b>(const char* <a href="#CalPlateDescr"><i>CalPlateDescr</i></a>, const HCamPar&amp; <a href="#CameraParam"><i>CameraParam</i></a>, Hlong <a href="#GrayBackground"><i>GrayBackground</i></a>, Hlong <a href="#GrayPlate"><i>GrayPlate</i></a>, Hlong <a href="#GrayMarks"><i>GrayMarks</i></a>, double <a href="#ScaleFac"><i>ScaleFac</i></a>) const</code></p>
<p>
<code><a href="HImage.html">HImage</a> <a href="HPose.html">HPose</a>::<b>SimCaltab</b>(const wchar_t* <a href="#CalPlateDescr"><i>CalPlateDescr</i></a>, const HCamPar&amp; <a href="#CameraParam"><i>CameraParam</i></a>, Hlong <a href="#GrayBackground"><i>GrayBackground</i></a>, Hlong <a href="#GrayPlate"><i>GrayPlate</i></a>, Hlong <a href="#GrayMarks"><i>GrayMarks</i></a>, double <a href="#ScaleFac"><i>ScaleFac</i></a>) const  <span class="signnote">
            (
            Windows only)
          </span></code></p>
</div>
<div data-if="com" style="display:none;"></div>
<div data-if="dotnet" style="display:none;">
<p>
<code>static void <a href="HOperatorSet.html">HOperatorSet</a>.<b>SimCaltab</b>(out <a href="HObject.html">HObject</a> <a href="#SimImage"><i>simImage</i></a>, <a href="HTuple.html">HTuple</a> <a href="#CalPlateDescr"><i>calPlateDescr</i></a>, <a href="HTuple.html">HTuple</a> <a href="#CameraParam"><i>cameraParam</i></a>, <a href="HTuple.html">HTuple</a> <a href="#CalPlatePose"><i>calPlatePose</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GrayBackground"><i>grayBackground</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GrayPlate"><i>grayPlate</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GrayMarks"><i>grayMarks</i></a>, <a href="HTuple.html">HTuple</a> <a href="#ScaleFac"><i>scaleFac</i></a>)</code></p>
<p>
<code>void <a href="HImage.html">HImage</a>.<b>SimCaltab</b>(string <a href="#CalPlateDescr"><i>calPlateDescr</i></a>, <a href="HCamPar.html">HCamPar</a> <a href="#CameraParam"><i>cameraParam</i></a>, <a href="HPose.html">HPose</a> <a href="#CalPlatePose"><i>calPlatePose</i></a>, int <a href="#GrayBackground"><i>grayBackground</i></a>, int <a href="#GrayPlate"><i>grayPlate</i></a>, int <a href="#GrayMarks"><i>grayMarks</i></a>, double <a href="#ScaleFac"><i>scaleFac</i></a>)</code></p>
<p>
<code><a href="HImage.html">HImage</a> <a href="HCamPar.html">HCamPar</a>.<b>SimCaltab</b>(string <a href="#CalPlateDescr"><i>calPlateDescr</i></a>, <a href="HPose.html">HPose</a> <a href="#CalPlatePose"><i>calPlatePose</i></a>, int <a href="#GrayBackground"><i>grayBackground</i></a>, int <a href="#GrayPlate"><i>grayPlate</i></a>, int <a href="#GrayMarks"><i>grayMarks</i></a>, double <a href="#ScaleFac"><i>scaleFac</i></a>)</code></p>
<p>
<code><a href="HImage.html">HImage</a> <a href="HPose.html">HPose</a>.<b>SimCaltab</b>(string <a href="#CalPlateDescr"><i>calPlateDescr</i></a>, <a href="HCamPar.html">HCamPar</a> <a href="#CameraParam"><i>cameraParam</i></a>, int <a href="#GrayBackground"><i>grayBackground</i></a>, int <a href="#GrayPlate"><i>grayPlate</i></a>, int <a href="#GrayMarks"><i>grayMarks</i></a>, double <a href="#ScaleFac"><i>scaleFac</i></a>)</code></p>
</div>
<div data-if="python" style="display:none;">
<p>
<code>def <b>sim_caltab</b>(<a href="#CalPlateDescr"><i>cal_plate_descr</i></a>: str, <a href="#CameraParam"><i>camera_param</i></a>: Sequence[Union[int, float, str]], <a href="#CalPlatePose"><i>cal_plate_pose</i></a>: Sequence[Union[int, float]], <a href="#GrayBackground"><i>gray_background</i></a>: int, <a href="#GrayPlate"><i>gray_plate</i></a>: int, <a href="#GrayMarks"><i>gray_marks</i></a>: int, <a href="#ScaleFac"><i>scale_fac</i></a>: float) -&gt; HObject</code></p>
</div>
<h2 id="sec_description">描述</h2>
<p><code><span data-if="hdevelop" style="display:inline">sim_caltab</span><span data-if="c" style="display:none">sim_caltab</span><span data-if="cpp" style="display:none">SimCaltab</span><span data-if="com" style="display:none">SimCaltab</span><span data-if="dotnet" style="display:none">SimCaltab</span><span data-if="python" style="display:none">sim_caltab</span></code> is used to generate a simulated calibration
image.  The calibration plate description is read from the file
<a href="#CalPlateDescr"><i><code><span data-if="hdevelop" style="display:inline">CalPlateDescr</span><span data-if="c" style="display:none">CalPlateDescr</span><span data-if="cpp" style="display:none">CalPlateDescr</span><span data-if="com" style="display:none">CalPlateDescr</span><span data-if="dotnet" style="display:none">calPlateDescr</span><span data-if="python" style="display:none">cal_plate_descr</span></code></i></a> and will be projected into the image plane
using the given camera parameters, thus internal camera parameters
<a href="#CameraParam"><i><code><span data-if="hdevelop" style="display:inline">CameraParam</span><span data-if="c" style="display:none">CameraParam</span><span data-if="cpp" style="display:none">CameraParam</span><span data-if="com" style="display:none">CameraParam</span><span data-if="dotnet" style="display:none">cameraParam</span><span data-if="python" style="display:none">camera_param</span></code></i></a> and external camera parameters
<a href="#CalPlatePose"><i><code><span data-if="hdevelop" style="display:inline">CalPlatePose</span><span data-if="c" style="display:none">CalPlatePose</span><span data-if="cpp" style="display:none">CalPlatePose</span><span data-if="com" style="display:none">CalPlatePose</span><span data-if="dotnet" style="display:none">calPlatePose</span><span data-if="python" style="display:none">cal_plate_pose</span></code></i></a> (see also <a href="project_3d_point.html"><code><span data-if="hdevelop" style="display:inline">project_3d_point</span><span data-if="c" style="display:none">project_3d_point</span><span data-if="cpp" style="display:none">Project3dPoint</span><span data-if="com" style="display:none">Project3dPoint</span><span data-if="dotnet" style="display:none">Project3dPoint</span><span data-if="python" style="display:none">project_3d_point</span></code></a>).
Thereby the pose is expected to be in the form
<span title="1" style="vertical-align:-0.217917em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="3.42407em" height="1.01195em" viewBox="0 0 54.785156 16.191269">
<!-- Original BoundingBox: -27.392578 -8.095642 27.392578 8.095627 -->
  <defs>
    <g transform="scale(0.006974,0.006974)" id="GLYPHcmmi7_99">
      <path style="fill-rule: evenodd;" d="M438.000000 -383.000000C402.000000 -377.000000,387.000000 -349.000000,387.000000 -327.000000C387.000000 -300.000000,408.000000 -290.000000,426.000000 -290.000000C448.000000 -290.000000,483.000000 -306.000000,483.000000 -354.000000C483.000000 -422.000000,405.000000 -441.000000,351.000000 -441.000000C201.000000 -441.000000,62.000000 -303.000000,62.000000 -164.000000C62.000000 -78.000000,122.000000 10.000000,247.000000 10.000000C416.000000 10.000000,495.000000 -89.000000,495.000000 -103.000000C495.000000 -109.000000,486.000000 -120.000000,478.000000 -120.000000C472.000000 -120.000000,470.000000 -118.000000,462.000000 -110.000000C384.000000 -18.000000,267.000000 -18.000000,249.000000 -18.000000C177.000000 -18.000000,145.000000 -67.000000,145.000000 -129.000000C145.000000 -158.000000,159.000000 -267.000000,211.000000 -336.000000C249.000000 -385.000000,301.000000 -413.000000,351.000000 -413.000000C365.000000 -413.000000,413.000000 -411.000000,438.000000 -383.000000"></path>
    </g>
    <g transform="scale(0.006974,0.006974)" id="GLYPHcmmi7_115">
      <path style="fill-rule: evenodd;" d="M431.000000 -376.000000C405.000000 -370.000000,389.000000 -349.000000,389.000000 -329.000000C389.000000 -306.000000,409.000000 -297.000000,422.000000 -297.000000C432.000000 -297.000000,470.000000 -303.000000,470.000000 -354.000000C470.000000 -419.000000,398.000000 -441.000000,337.000000 -441.000000C181.000000 -441.000000,153.000000 -326.000000,153.000000 -295.000000C153.000000 -258.000000,174.000000 -234.000000,188.000000 -222.000000C214.000000 -202.000000,232.000000 -198.000000,301.000000 -186.000000C322.000000 -182.000000,386.000000 -170.000000,386.000000 -120.000000C386.000000 -103.000000,375.000000 -65.000000,333.000000 -40.000000C294.000000 -18.000000,245.000000 -18.000000,233.000000 -18.000000C193.000000 -18.000000,136.000000 -27.000000,113.000000 -60.000000C146.000000 -64.000000,168.000000 -89.000000,168.000000 -117.000000C168.000000 -142.000000,150.000000 -154.000000,129.000000 -154.000000C100.000000 -154.000000,71.000000 -131.000000,71.000000 -87.000000C71.000000 -27.000000,135.000000 10.000000,232.000000 10.000000C416.000000 10.000000,450.000000 -116.000000,450.000000 -155.000000C450.000000 -247.000000,349.000000 -265.000000,312.000000 -272.000000C303.000000 -274.000000,278.000000 -278.000000,272.000000 -280.000000C235.000000 -287.000000,217.000000 -308.000000,217.000000 -330.000000C217.000000 -353.000000,235.000000 -380.000000,257.000000 -394.000000C284.000000 -411.000000,319.000000 -413.000000,336.000000 -413.000000C357.000000 -413.000000,409.000000 -410.000000,431.000000 -376.000000"></path>
    </g>
    <g transform="scale(0.006974,0.006974)" id="GLYPHcmmi7_119">
      <path style="fill-rule: evenodd;" d="M526.000000 -319.000000C533.000000 -346.000000,545.000000 -394.000000,545.000000 -399.000000C545.000000 -419.000000,529.000000 -431.000000,512.000000 -431.000000C493.000000 -431.000000,475.000000 -419.000000,469.000000 -402.000000C466.000000 -394.000000,456.000000 -352.000000,449.000000 -327.000000C435.000000 -270.000000,435.000000 -268.000000,420.000000 -212.000000C407.000000 -157.000000,405.000000 -149.000000,404.000000 -120.000000C408.000000 -100.000000,400.000000 -81.000000,376.000000 -51.000000C363.000000 -35.000000,343.000000 -18.000000,309.000000 -18.000000C270.000000 -18.000000,219.000000 -32.000000,219.000000 -110.000000C219.000000 -161.000000,247.000000 -235.000000,267.000000 -286.000000C284.000000 -330.000000,288.000000 -339.000000,288.000000 -356.000000C288.000000 -404.000000,247.000000 -441.000000,193.000000 -441.000000C92.000000 -441.000000,47.000000 -305.000000,47.000000 -288.000000C47.000000 -275.000000,61.000000 -275.000000,64.000000 -275.000000C78.000000 -275.000000,79.000000 -280.000000,82.000000 -291.000000C107.000000 -374.000000,150.000000 -413.000000,190.000000 -413.000000C207.000000 -413.000000,215.000000 -402.000000,215.000000 -378.000000C215.000000 -355.000000,206.000000 -333.000000,201.000000 -320.000000C144.000000 -174.000000,144.000000 -154.000000,144.000000 -123.000000C144.000000 -5.000000,251.000000 10.000000,305.000000 10.000000C324.000000 10.000000,373.000000 10.000000,418.000000 -57.000000C441.000000 -12.000000,496.000000 10.000000,557.000000 10.000000C646.000000 10.000000,690.000000 -67.000000,710.000000 -108.000000C753.000000 -192.000000,780.000000 -317.000000,780.000000 -363.000000C780.000000 -438.000000,737.000000 -442.000000,730.000000 -442.000000C704.000000 -442.000000,676.000000 -415.000000,676.000000 -389.000000C676.000000 -372.000000,686.000000 -364.000000,693.000000 -358.000000C717.000000 -338.000000,730.000000 -310.000000,730.000000 -278.000000C730.000000 -265.000000,688.000000 -18.000000,561.000000 -18.000000C480.000000 -18.000000,480.000000 -90.000000,480.000000 -107.000000C480.000000 -134.000000,484.000000 -150.000000,498.000000 -207.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmbx10_80">
      <path style="fill-rule: evenodd;" d="M289.000000 -302.000000L466.000000 -302.000000C605.000000 -302.000000,721.000000 -374.000000,721.000000 -491.000000C721.000000 -601.000000,622.000000 -686.000000,456.000000 -686.000000L39.000000 -686.000000L39.000000 -639.000000L147.000000 -639.000000L147.000000 -47.000000L39.000000 -47.000000L39.000000 -0.000000L218.000000 -0.000000L77.000000 -3.000000L175.000000 -3.000000L218.000000 -3.000000L261.000000 -3.000000L359.000000 -3.000000L397.000000 -0.000000L397.000000 -47.000000L289.000000 -47.000000M417.000000 -343.000000L283.000000 -343.000000L283.000000 -639.000000L418.000000 -639.000000C568.000000 -639.000000,568.000000 -563.000000,568.000000 -491.000000C568.000000 -420.000000,568.000000 -343.000000,417.000000 -343.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.623413 5.708572)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi7_99"></use>
    <use xlink:href="#GLYPHcmmi7_99" x="3.573800"></use>
    <use xlink:href="#GLYPHcmmi7_115" x="7.147601"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,18.830048 12.704590)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmbx10_80"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,31.360809 15.095642)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi7_119"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,40.882629 15.095642)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi7_99"></use>
    <use xlink:href="#GLYPHcmmi7_115" x="3.573800"></use>
  </g>
</svg></span>, where
<i>ccs</i> denotes the camera coordinate system and
<i>wcs</i> the world coordinate system (see
<a href="toc_transformations_poses.html">Transformations / Poses</a>
and <code>“Solution Guide III-C - 3D Vision”</code>).
</p>
<p>In the simulated image only the calibration plate is shown. The
image background is set to the gray value <a href="#GrayBackground"><i><code><span data-if="hdevelop" style="display:inline">GrayBackground</span><span data-if="c" style="display:none">GrayBackground</span><span data-if="cpp" style="display:none">GrayBackground</span><span data-if="com" style="display:none">GrayBackground</span><span data-if="dotnet" style="display:none">grayBackground</span><span data-if="python" style="display:none">gray_background</span></code></i></a>,
the calibration plate background is set to <a href="#GrayPlate"><i><code><span data-if="hdevelop" style="display:inline">GrayPlate</span><span data-if="c" style="display:none">GrayPlate</span><span data-if="cpp" style="display:none">GrayPlate</span><span data-if="com" style="display:none">GrayPlate</span><span data-if="dotnet" style="display:none">grayPlate</span><span data-if="python" style="display:none">gray_plate</span></code></i></a>, and
the calibration marks are set to the gray value <a href="#GrayMarks"><i><code><span data-if="hdevelop" style="display:inline">GrayMarks</span><span data-if="c" style="display:none">GrayMarks</span><span data-if="cpp" style="display:none">GrayMarks</span><span data-if="com" style="display:none">GrayMarks</span><span data-if="dotnet" style="display:none">grayMarks</span><span data-if="python" style="display:none">gray_marks</span></code></i></a>.
The parameter <a href="#ScaleFac"><i><code><span data-if="hdevelop" style="display:inline">ScaleFac</span><span data-if="c" style="display:none">ScaleFac</span><span data-if="cpp" style="display:none">ScaleFac</span><span data-if="com" style="display:none">ScaleFac</span><span data-if="dotnet" style="display:none">scaleFac</span><span data-if="python" style="display:none">scale_fac</span></code></i></a> influences the number of supporting
points to approximate the elliptic contours of the calibration
marks, see also <a href="disp_caltab.html"><code><span data-if="hdevelop" style="display:inline">disp_caltab</span><span data-if="c" style="display:none">disp_caltab</span><span data-if="cpp" style="display:none">DispCaltab</span><span data-if="com" style="display:none">DispCaltab</span><span data-if="dotnet" style="display:none">DispCaltab</span><span data-if="python" style="display:none">disp_caltab</span></code></a>. Increasing the number of
supporting points causes a more accurate determination of the mark
boundary, but increases the computation time, too.  For each pixel
of the simulated image which touches a subpixel-boundary of this
kind, the gray value is set linearly between <a href="#GrayMarks"><i><code><span data-if="hdevelop" style="display:inline">GrayMarks</span><span data-if="c" style="display:none">GrayMarks</span><span data-if="cpp" style="display:none">GrayMarks</span><span data-if="com" style="display:none">GrayMarks</span><span data-if="dotnet" style="display:none">grayMarks</span><span data-if="python" style="display:none">gray_marks</span></code></i></a> and
<a href="#GrayPlate"><i><code><span data-if="hdevelop" style="display:inline">GrayPlate</span><span data-if="c" style="display:none">GrayPlate</span><span data-if="cpp" style="display:none">GrayPlate</span><span data-if="com" style="display:none">GrayPlate</span><span data-if="dotnet" style="display:none">grayPlate</span><span data-if="python" style="display:none">gray_plate</span></code></i></a> dependent on the proportion Inside/Outside.
</p>
<p>By applying 该算子 <code><span data-if="hdevelop" style="display:inline">sim_caltab</span><span data-if="c" style="display:none">sim_caltab</span><span data-if="cpp" style="display:none">SimCaltab</span><span data-if="com" style="display:none">SimCaltab</span><span data-if="dotnet" style="display:none">SimCaltab</span><span data-if="python" style="display:none">sim_caltab</span></code> you can generate
synthetic calibration images (with known camera parameters!) to test
the quality of the calibration algorithm (see
<a href="toc_calibration.html">Calibration</a>).</p>
<h2 id="sec_execution">运行信息</h2>
<ul>
  <li>多线程类型:可重入(与非独占操作符并行运行)。</li>
<li>多线程作用域:全局(可以从任何线程调用)。</li>
  
    <li>Automatically parallelized on internal data level.</li>
  
</ul>
<h2 id="sec_parameters">参数表</h2>
  <div class="par">
<div class="parhead">
<span id="SimImage" class="parname"><b><code><span data-if="hdevelop" style="display:inline">SimImage</span><span data-if="c" style="display:none">SimImage</span><span data-if="cpp" style="display:none">SimImage</span><span data-if="com" style="display:none">SimImage</span><span data-if="dotnet" style="display:none">simImage</span><span data-if="python" style="display:none">sim_image</span></code></b> (output_object)  </span><span>image <code>→</code> <span data-if="hdevelop" style="display:inline">object</span><span data-if="dotnet" style="display:none"><a href="HImage.html">HImage</a></span><span data-if="python" style="display:none">HObject</span><span data-if="cpp" style="display:none"><a href="HImage.html">HImage</a></span><span data-if="c" style="display:none">Hobject *</span> (byte)</span>
</div>
<p class="pardesc">Simulated calibration image.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="CalPlateDescr" class="parname"><b><code><span data-if="hdevelop" style="display:inline">CalPlateDescr</span><span data-if="c" style="display:none">CalPlateDescr</span><span data-if="cpp" style="display:none">CalPlateDescr</span><span data-if="com" style="display:none">CalPlateDescr</span><span data-if="dotnet" style="display:none">calPlateDescr</span><span data-if="python" style="display:none">cal_plate_descr</span></code></b> (input_control)  </span><span>filename.read <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">str</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (string)</span><span data-if="dotnet" style="display:none"> (<i>string</i>)</span><span data-if="cpp" style="display:none"> (<i>HString</i>)</span><span data-if="c" style="display:none"> (<i>char*</i>)</span></span>
</div>
<p class="pardesc">File name of the calibration plate description.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>
    <span data-if="hdevelop" style="display:inline">'calplate_320mm.cpd'</span>
    <span data-if="c" style="display:none">"calplate_320mm.cpd"</span>
    <span data-if="cpp" style="display:none">"calplate_320mm.cpd"</span>
    <span data-if="com" style="display:none">"calplate_320mm.cpd"</span>
    <span data-if="dotnet" style="display:none">"calplate_320mm.cpd"</span>
    <span data-if="python" style="display:none">"calplate_320mm.cpd"</span>
</p>
<p class="pardesc"><span class="parcat">List of values:
      </span><span data-if="hdevelop" style="display:inline">'calplate_10mm.cpd'</span><span data-if="c" style="display:none">"calplate_10mm.cpd"</span><span data-if="cpp" style="display:none">"calplate_10mm.cpd"</span><span data-if="com" style="display:none">"calplate_10mm.cpd"</span><span data-if="dotnet" style="display:none">"calplate_10mm.cpd"</span><span data-if="python" style="display:none">"calplate_10mm.cpd"</span>, <span data-if="hdevelop" style="display:inline">'calplate_1200mm.cpd'</span><span data-if="c" style="display:none">"calplate_1200mm.cpd"</span><span data-if="cpp" style="display:none">"calplate_1200mm.cpd"</span><span data-if="com" style="display:none">"calplate_1200mm.cpd"</span><span data-if="dotnet" style="display:none">"calplate_1200mm.cpd"</span><span data-if="python" style="display:none">"calplate_1200mm.cpd"</span>, <span data-if="hdevelop" style="display:inline">'calplate_160mm.cpd'</span><span data-if="c" style="display:none">"calplate_160mm.cpd"</span><span data-if="cpp" style="display:none">"calplate_160mm.cpd"</span><span data-if="com" style="display:none">"calplate_160mm.cpd"</span><span data-if="dotnet" style="display:none">"calplate_160mm.cpd"</span><span data-if="python" style="display:none">"calplate_160mm.cpd"</span>, <span data-if="hdevelop" style="display:inline">'calplate_20mm.cpd'</span><span data-if="c" style="display:none">"calplate_20mm.cpd"</span><span data-if="cpp" style="display:none">"calplate_20mm.cpd"</span><span data-if="com" style="display:none">"calplate_20mm.cpd"</span><span data-if="dotnet" style="display:none">"calplate_20mm.cpd"</span><span data-if="python" style="display:none">"calplate_20mm.cpd"</span>, <span data-if="hdevelop" style="display:inline">'calplate_20mm_dark_on_light.cpd'</span><span data-if="c" style="display:none">"calplate_20mm_dark_on_light.cpd"</span><span data-if="cpp" style="display:none">"calplate_20mm_dark_on_light.cpd"</span><span data-if="com" style="display:none">"calplate_20mm_dark_on_light.cpd"</span><span data-if="dotnet" style="display:none">"calplate_20mm_dark_on_light.cpd"</span><span data-if="python" style="display:none">"calplate_20mm_dark_on_light.cpd"</span>, <span data-if="hdevelop" style="display:inline">'calplate_320mm.cpd'</span><span data-if="c" style="display:none">"calplate_320mm.cpd"</span><span data-if="cpp" style="display:none">"calplate_320mm.cpd"</span><span data-if="com" style="display:none">"calplate_320mm.cpd"</span><span data-if="dotnet" style="display:none">"calplate_320mm.cpd"</span><span data-if="python" style="display:none">"calplate_320mm.cpd"</span>, <span data-if="hdevelop" style="display:inline">'calplate_40mm.cpd'</span><span data-if="c" style="display:none">"calplate_40mm.cpd"</span><span data-if="cpp" style="display:none">"calplate_40mm.cpd"</span><span data-if="com" style="display:none">"calplate_40mm.cpd"</span><span data-if="dotnet" style="display:none">"calplate_40mm.cpd"</span><span data-if="python" style="display:none">"calplate_40mm.cpd"</span>, <span data-if="hdevelop" style="display:inline">'calplate_40mm_dark_on_light.cpd'</span><span data-if="c" style="display:none">"calplate_40mm_dark_on_light.cpd"</span><span data-if="cpp" style="display:none">"calplate_40mm_dark_on_light.cpd"</span><span data-if="com" style="display:none">"calplate_40mm_dark_on_light.cpd"</span><span data-if="dotnet" style="display:none">"calplate_40mm_dark_on_light.cpd"</span><span data-if="python" style="display:none">"calplate_40mm_dark_on_light.cpd"</span>, <span data-if="hdevelop" style="display:inline">'calplate_5mm.cpd'</span><span data-if="c" style="display:none">"calplate_5mm.cpd"</span><span data-if="cpp" style="display:none">"calplate_5mm.cpd"</span><span data-if="com" style="display:none">"calplate_5mm.cpd"</span><span data-if="dotnet" style="display:none">"calplate_5mm.cpd"</span><span data-if="python" style="display:none">"calplate_5mm.cpd"</span>, <span data-if="hdevelop" style="display:inline">'calplate_640mm.cpd'</span><span data-if="c" style="display:none">"calplate_640mm.cpd"</span><span data-if="cpp" style="display:none">"calplate_640mm.cpd"</span><span data-if="com" style="display:none">"calplate_640mm.cpd"</span><span data-if="dotnet" style="display:none">"calplate_640mm.cpd"</span><span data-if="python" style="display:none">"calplate_640mm.cpd"</span>, <span data-if="hdevelop" style="display:inline">'calplate_80mm.cpd'</span><span data-if="c" style="display:none">"calplate_80mm.cpd"</span><span data-if="cpp" style="display:none">"calplate_80mm.cpd"</span><span data-if="com" style="display:none">"calplate_80mm.cpd"</span><span data-if="dotnet" style="display:none">"calplate_80mm.cpd"</span><span data-if="python" style="display:none">"calplate_80mm.cpd"</span>, <span data-if="hdevelop" style="display:inline">'calplate_80mm_dark_on_light.cpd'</span><span data-if="c" style="display:none">"calplate_80mm_dark_on_light.cpd"</span><span data-if="cpp" style="display:none">"calplate_80mm_dark_on_light.cpd"</span><span data-if="com" style="display:none">"calplate_80mm_dark_on_light.cpd"</span><span data-if="dotnet" style="display:none">"calplate_80mm_dark_on_light.cpd"</span><span data-if="python" style="display:none">"calplate_80mm_dark_on_light.cpd"</span>, <span data-if="hdevelop" style="display:inline">'caltab_100mm.descr'</span><span data-if="c" style="display:none">"caltab_100mm.descr"</span><span data-if="cpp" style="display:none">"caltab_100mm.descr"</span><span data-if="com" style="display:none">"caltab_100mm.descr"</span><span data-if="dotnet" style="display:none">"caltab_100mm.descr"</span><span data-if="python" style="display:none">"caltab_100mm.descr"</span>, <span data-if="hdevelop" style="display:inline">'caltab_10mm.descr'</span><span data-if="c" style="display:none">"caltab_10mm.descr"</span><span data-if="cpp" style="display:none">"caltab_10mm.descr"</span><span data-if="com" style="display:none">"caltab_10mm.descr"</span><span data-if="dotnet" style="display:none">"caltab_10mm.descr"</span><span data-if="python" style="display:none">"caltab_10mm.descr"</span>, <span data-if="hdevelop" style="display:inline">'caltab_200mm.descr'</span><span data-if="c" style="display:none">"caltab_200mm.descr"</span><span data-if="cpp" style="display:none">"caltab_200mm.descr"</span><span data-if="com" style="display:none">"caltab_200mm.descr"</span><span data-if="dotnet" style="display:none">"caltab_200mm.descr"</span><span data-if="python" style="display:none">"caltab_200mm.descr"</span>, <span data-if="hdevelop" style="display:inline">'caltab_2500um.descr'</span><span data-if="c" style="display:none">"caltab_2500um.descr"</span><span data-if="cpp" style="display:none">"caltab_2500um.descr"</span><span data-if="com" style="display:none">"caltab_2500um.descr"</span><span data-if="dotnet" style="display:none">"caltab_2500um.descr"</span><span data-if="python" style="display:none">"caltab_2500um.descr"</span>, <span data-if="hdevelop" style="display:inline">'caltab_30mm.descr'</span><span data-if="c" style="display:none">"caltab_30mm.descr"</span><span data-if="cpp" style="display:none">"caltab_30mm.descr"</span><span data-if="com" style="display:none">"caltab_30mm.descr"</span><span data-if="dotnet" style="display:none">"caltab_30mm.descr"</span><span data-if="python" style="display:none">"caltab_30mm.descr"</span>, <span data-if="hdevelop" style="display:inline">'caltab_650um.descr'</span><span data-if="c" style="display:none">"caltab_650um.descr"</span><span data-if="cpp" style="display:none">"caltab_650um.descr"</span><span data-if="com" style="display:none">"caltab_650um.descr"</span><span data-if="dotnet" style="display:none">"caltab_650um.descr"</span><span data-if="python" style="display:none">"caltab_650um.descr"</span>, <span data-if="hdevelop" style="display:inline">'caltab_6mm.descr'</span><span data-if="c" style="display:none">"caltab_6mm.descr"</span><span data-if="cpp" style="display:none">"caltab_6mm.descr"</span><span data-if="com" style="display:none">"caltab_6mm.descr"</span><span data-if="dotnet" style="display:none">"caltab_6mm.descr"</span><span data-if="python" style="display:none">"caltab_6mm.descr"</span>, <span data-if="hdevelop" style="display:inline">'caltab_800mm.descr'</span><span data-if="c" style="display:none">"caltab_800mm.descr"</span><span data-if="cpp" style="display:none">"caltab_800mm.descr"</span><span data-if="com" style="display:none">"caltab_800mm.descr"</span><span data-if="dotnet" style="display:none">"caltab_800mm.descr"</span><span data-if="python" style="display:none">"caltab_800mm.descr"</span>, <span data-if="hdevelop" style="display:inline">'caltab_big.descr'</span><span data-if="c" style="display:none">"caltab_big.descr"</span><span data-if="cpp" style="display:none">"caltab_big.descr"</span><span data-if="com" style="display:none">"caltab_big.descr"</span><span data-if="dotnet" style="display:none">"caltab_big.descr"</span><span data-if="python" style="display:none">"caltab_big.descr"</span>, <span data-if="hdevelop" style="display:inline">'caltab_small.descr'</span><span data-if="c" style="display:none">"caltab_small.descr"</span><span data-if="cpp" style="display:none">"caltab_small.descr"</span><span data-if="com" style="display:none">"caltab_small.descr"</span><span data-if="dotnet" style="display:none">"caltab_small.descr"</span><span data-if="python" style="display:none">"caltab_small.descr"</span></p>
<p class="pardesc"><span class="parcat">File extension:
          </span>.<code>cpd</code>, .<code>descr</code></p>
</div>
  <div class="par">
<div class="parhead">
<span id="CameraParam" class="parname"><b><code><span data-if="hdevelop" style="display:inline">CameraParam</span><span data-if="c" style="display:none">CameraParam</span><span data-if="cpp" style="display:none">CameraParam</span><span data-if="com" style="display:none">CameraParam</span><span data-if="dotnet" style="display:none">cameraParam</span><span data-if="python" style="display:none">camera_param</span></code></b> (input_control)  </span><span>campar <code>→</code> <span data-if="dotnet" style="display:none"><a href="HCamPar.html">HCamPar</a>, </span><span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[Union[int, float, str]]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real / </span><span data-if="hdevelop" style="display:inline">integer / </span><span data-if="hdevelop" style="display:inline">string)</span><span data-if="dotnet" style="display:none"> (<i>double</i> / </span><span data-if="dotnet" style="display:none">int / </span><span data-if="dotnet" style="display:none">long / </span><span data-if="dotnet" style="display:none">string)</span><span data-if="cpp" style="display:none"> (<i>double</i> / </span><span data-if="cpp" style="display:none">Hlong / </span><span data-if="cpp" style="display:none">HString)</span><span data-if="c" style="display:none"> (<i>double</i> / </span><span data-if="c" style="display:none">Hlong / </span><span data-if="c" style="display:none">char*)</span></span>
</div>
<p class="pardesc">Internal camera parameters.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="CalPlatePose" class="parname"><b><code><span data-if="hdevelop" style="display:inline">CalPlatePose</span><span data-if="c" style="display:none">CalPlatePose</span><span data-if="cpp" style="display:none">CalPlatePose</span><span data-if="com" style="display:none">CalPlatePose</span><span data-if="dotnet" style="display:none">calPlatePose</span><span data-if="python" style="display:none">cal_plate_pose</span></code></b> (input_control)  </span><span>pose <code>→</code> <span data-if="dotnet" style="display:none"><a href="HPose.html">HPose</a>, </span><span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[Union[int, float]]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real / </span><span data-if="hdevelop" style="display:inline">integer)</span><span data-if="dotnet" style="display:none"> (<i>double</i> / </span><span data-if="dotnet" style="display:none">int / </span><span data-if="dotnet" style="display:none">long)</span><span data-if="cpp" style="display:none"> (<i>double</i> / </span><span data-if="cpp" style="display:none">Hlong)</span><span data-if="c" style="display:none"> (<i>double</i> / </span><span data-if="c" style="display:none">Hlong)</span></span>
</div>
<p class="pardesc">External camera parameters (3D pose of the calibration
plate in camera coordinates).</p>
<p class="pardesc"><span class="parcat">Number of elements:
      </span>7</p>
</div>
  <div class="par">
<div class="parhead">
<span id="GrayBackground" class="parname"><b><code><span data-if="hdevelop" style="display:inline">GrayBackground</span><span data-if="c" style="display:none">GrayBackground</span><span data-if="cpp" style="display:none">GrayBackground</span><span data-if="com" style="display:none">GrayBackground</span><span data-if="dotnet" style="display:none">grayBackground</span><span data-if="python" style="display:none">gray_background</span></code></b> (input_control)  </span><span>integer <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">int</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (integer)</span><span data-if="dotnet" style="display:none"> (<i>int</i> / </span><span data-if="dotnet" style="display:none">long)</span><span data-if="cpp" style="display:none"> (<i>Hlong</i>)</span><span data-if="c" style="display:none"> (<i>Hlong</i>)</span></span>
</div>
<p class="pardesc">Gray value of image background.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>128</p>
<p class="pardesc"><span class="parcat">Suggested values:
      </span>0, 32, 64, 96, 128, 160</p>
<p class="pardesc"><span class="parcat">Restriction:
      </span><code>0 &lt;= GrayBackground &lt;= 255</code></p>
</div>
  <div class="par">
<div class="parhead">
<span id="GrayPlate" class="parname"><b><code><span data-if="hdevelop" style="display:inline">GrayPlate</span><span data-if="c" style="display:none">GrayPlate</span><span data-if="cpp" style="display:none">GrayPlate</span><span data-if="com" style="display:none">GrayPlate</span><span data-if="dotnet" style="display:none">grayPlate</span><span data-if="python" style="display:none">gray_plate</span></code></b> (input_control)  </span><span>integer <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">int</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (integer)</span><span data-if="dotnet" style="display:none"> (<i>int</i> / </span><span data-if="dotnet" style="display:none">long)</span><span data-if="cpp" style="display:none"> (<i>Hlong</i>)</span><span data-if="c" style="display:none"> (<i>Hlong</i>)</span></span>
</div>
<p class="pardesc">Gray value of calibration plate.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>80</p>
<p class="pardesc"><span class="parcat">Suggested values:
      </span>144, 160, 176, 192, 208, 224, 240</p>
<p class="pardesc"><span class="parcat">Restriction:
      </span><code>0 &lt;= GrayPlate &lt;= 255</code></p>
</div>
  <div class="par">
<div class="parhead">
<span id="GrayMarks" class="parname"><b><code><span data-if="hdevelop" style="display:inline">GrayMarks</span><span data-if="c" style="display:none">GrayMarks</span><span data-if="cpp" style="display:none">GrayMarks</span><span data-if="com" style="display:none">GrayMarks</span><span data-if="dotnet" style="display:none">grayMarks</span><span data-if="python" style="display:none">gray_marks</span></code></b> (input_control)  </span><span>integer <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">int</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (integer)</span><span data-if="dotnet" style="display:none"> (<i>int</i> / </span><span data-if="dotnet" style="display:none">long)</span><span data-if="cpp" style="display:none"> (<i>Hlong</i>)</span><span data-if="c" style="display:none"> (<i>Hlong</i>)</span></span>
</div>
<p class="pardesc">Gray value of calibration marks.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>224</p>
<p class="pardesc"><span class="parcat">Suggested values:
      </span>16, 32, 48, 64, 80, 96, 112</p>
<p class="pardesc"><span class="parcat">Restriction:
      </span><code>0 &lt;= GrayMarks &lt;= 255</code></p>
</div>
  <div class="par">
<div class="parhead">
<span id="ScaleFac" class="parname"><b><code><span data-if="hdevelop" style="display:inline">ScaleFac</span><span data-if="c" style="display:none">ScaleFac</span><span data-if="cpp" style="display:none">ScaleFac</span><span data-if="com" style="display:none">ScaleFac</span><span data-if="dotnet" style="display:none">scaleFac</span><span data-if="python" style="display:none">scale_fac</span></code></b> (input_control)  </span><span>real <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">float</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Scaling factor to reduce oversampling.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>1.0</p>
<p class="pardesc"><span class="parcat">Suggested values:
      </span>1.0, 0.5, 0.25, 0.125</p>
<p class="pardesc"><span class="parcat">Recommended increment:
      </span>0.05</p>
<p class="pardesc"><span class="parcat">Restriction:
      </span><code>1.0 &gt;= ScaleFac</code></p>
</div>
<h2 id="sec_example_all">例程 (HDevelop)</h2>
<pre class="example">
* Read calibration image.
read_image(Image1, 'calib-01')
* Find calibration pattern.
CameraType := 'area_scan_division'
StartCamPar := [CameraType, Focus, Kappa, Sx, Sy, Cx, Cy, \
                ImageWidth, ImageHeight]
create_calib_data ('calibration_object', 1, 1, CalibDataID)
set_calib_data_cam_param (CalibDataID, 0, [], StartCamPar)
set_calib_data_calib_object (CalibDataID, 0, 'calplate.cpd')
find_caltab(Image1, CalPlate1, 'caltab.descr', 3, 112, 5)
* Find calibration marks and initial pose.
find_calib_object (Image1, CalibDataID, 0, 0, 0, [], [])
* Camera calibration.
calibrate_cameras (CalibDataID, Error)
* Simulate calibration image.
get_calib_data (CalibDataID, 'calib_obj_pose', [0, 0], 'pose', FinalPose)
get_calib_data (CalibDataID, 'camera', 0, 'params', CameraParam)
sim_caltab(Image1Sim, 'calplate.cpd', CameraParam, FinalPose, 128, \
           80, 224, 1)
</pre>
<h2 id="sec_result">结果</h2>
<p><code><span data-if="hdevelop" style="display:inline">sim_caltab</span><span data-if="c" style="display:none">sim_caltab</span><span data-if="cpp" style="display:none">SimCaltab</span><span data-if="com" style="display:none">SimCaltab</span><span data-if="dotnet" style="display:none">SimCaltab</span><span data-if="python" style="display:none">sim_caltab</span></code> returns <TT>2</TT> (
      <TT>H_MSG_TRUE</TT>)
     if all parameter values are
correct. 如有必要，将引发异常。</p>
<h2 id="sec_predecessors">可能的前置算子</h2>
<p>
<code><a href="camera_calibration.html"><span data-if="hdevelop" style="display:inline">camera_calibration</span><span data-if="c" style="display:none">camera_calibration</span><span data-if="cpp" style="display:none">CameraCalibration</span><span data-if="com" style="display:none">CameraCalibration</span><span data-if="dotnet" style="display:none">CameraCalibration</span><span data-if="python" style="display:none">camera_calibration</span></a></code>, 
<code><a href="find_marks_and_pose.html"><span data-if="hdevelop" style="display:inline">find_marks_and_pose</span><span data-if="c" style="display:none">find_marks_and_pose</span><span data-if="cpp" style="display:none">FindMarksAndPose</span><span data-if="com" style="display:none">FindMarksAndPose</span><span data-if="dotnet" style="display:none">FindMarksAndPose</span><span data-if="python" style="display:none">find_marks_and_pose</span></a></code>, 
<code><a href="read_pose.html"><span data-if="hdevelop" style="display:inline">read_pose</span><span data-if="c" style="display:none">read_pose</span><span data-if="cpp" style="display:none">ReadPose</span><span data-if="com" style="display:none">ReadPose</span><span data-if="dotnet" style="display:none">ReadPose</span><span data-if="python" style="display:none">read_pose</span></a></code>, 
<code><a href="read_cam_par.html"><span data-if="hdevelop" style="display:inline">read_cam_par</span><span data-if="c" style="display:none">read_cam_par</span><span data-if="cpp" style="display:none">ReadCamPar</span><span data-if="com" style="display:none">ReadCamPar</span><span data-if="dotnet" style="display:none">ReadCamPar</span><span data-if="python" style="display:none">read_cam_par</span></a></code>, 
<code><a href="hom_mat3d_to_pose.html"><span data-if="hdevelop" style="display:inline">hom_mat3d_to_pose</span><span data-if="c" style="display:none">hom_mat3d_to_pose</span><span data-if="cpp" style="display:none">HomMat3dToPose</span><span data-if="com" style="display:none">HomMat3dToPose</span><span data-if="dotnet" style="display:none">HomMat3dToPose</span><span data-if="python" style="display:none">hom_mat3d_to_pose</span></a></code>
</p>
<h2 id="sec_successors">可能的后置算子</h2>
<p>
<code><a href="find_caltab.html"><span data-if="hdevelop" style="display:inline">find_caltab</span><span data-if="c" style="display:none">find_caltab</span><span data-if="cpp" style="display:none">FindCaltab</span><span data-if="com" style="display:none">FindCaltab</span><span data-if="dotnet" style="display:none">FindCaltab</span><span data-if="python" style="display:none">find_caltab</span></a></code>
</p>
<h2 id="sec_see">参考其它</h2>
<p>
<code><a href="find_caltab.html"><span data-if="hdevelop" style="display:inline">find_caltab</span><span data-if="c" style="display:none">find_caltab</span><span data-if="cpp" style="display:none">FindCaltab</span><span data-if="com" style="display:none">FindCaltab</span><span data-if="dotnet" style="display:none">FindCaltab</span><span data-if="python" style="display:none">find_caltab</span></a></code>, 
<code><a href="find_marks_and_pose.html"><span data-if="hdevelop" style="display:inline">find_marks_and_pose</span><span data-if="c" style="display:none">find_marks_and_pose</span><span data-if="cpp" style="display:none">FindMarksAndPose</span><span data-if="com" style="display:none">FindMarksAndPose</span><span data-if="dotnet" style="display:none">FindMarksAndPose</span><span data-if="python" style="display:none">find_marks_and_pose</span></a></code>, 
<code><a href="camera_calibration.html"><span data-if="hdevelop" style="display:inline">camera_calibration</span><span data-if="c" style="display:none">camera_calibration</span><span data-if="cpp" style="display:none">CameraCalibration</span><span data-if="com" style="display:none">CameraCalibration</span><span data-if="dotnet" style="display:none">CameraCalibration</span><span data-if="python" style="display:none">camera_calibration</span></a></code>, 
<code><a href="disp_caltab.html"><span data-if="hdevelop" style="display:inline">disp_caltab</span><span data-if="c" style="display:none">disp_caltab</span><span data-if="cpp" style="display:none">DispCaltab</span><span data-if="com" style="display:none">DispCaltab</span><span data-if="dotnet" style="display:none">DispCaltab</span><span data-if="python" style="display:none">disp_caltab</span></a></code>, 
<code><a href="create_pose.html"><span data-if="hdevelop" style="display:inline">create_pose</span><span data-if="c" style="display:none">create_pose</span><span data-if="cpp" style="display:none">CreatePose</span><span data-if="com" style="display:none">CreatePose</span><span data-if="dotnet" style="display:none">CreatePose</span><span data-if="python" style="display:none">create_pose</span></a></code>, 
<code><a href="hom_mat3d_to_pose.html"><span data-if="hdevelop" style="display:inline">hom_mat3d_to_pose</span><span data-if="c" style="display:none">hom_mat3d_to_pose</span><span data-if="cpp" style="display:none">HomMat3dToPose</span><span data-if="com" style="display:none">HomMat3dToPose</span><span data-if="dotnet" style="display:none">HomMat3dToPose</span><span data-if="python" style="display:none">hom_mat3d_to_pose</span></a></code>, 
<code><a href="project_3d_point.html"><span data-if="hdevelop" style="display:inline">project_3d_point</span><span data-if="c" style="display:none">project_3d_point</span><span data-if="cpp" style="display:none">Project3dPoint</span><span data-if="com" style="display:none">Project3dPoint</span><span data-if="dotnet" style="display:none">Project3dPoint</span><span data-if="python" style="display:none">project_3d_point</span></a></code>, 
<code><a href="gen_caltab.html"><span data-if="hdevelop" style="display:inline">gen_caltab</span><span data-if="c" style="display:none">gen_caltab</span><span data-if="cpp" style="display:none">GenCaltab</span><span data-if="com" style="display:none">GenCaltab</span><span data-if="dotnet" style="display:none">GenCaltab</span><span data-if="python" style="display:none">gen_caltab</span></a></code>
</p>
<h2 id="sec_module">模块</h2>
<p>
Calibration</p>
<!--OP_REF_FOOTER_START-->
<hr>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<div class="footer">
<div class="copyright">HALCON算子参考手册 Copyright © 2015-2023 51Halcon</div>
</div>
</div>
</body>
</html>
